package com.jie.langlangmall.service;

import com.jie.langlangmall.dto.PmsBrandParam;
import com.jie.langlangmall.model.PmsBrand;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @Author Jie
 * @Date 2024/11/23
 * @Email 3217998214@qq.com
 * @Description 商品品牌管理
 */
public interface PmsBrandService {

    /**
     * 商品品牌分页查询
     *
     * @param keyWord
     * @param showStatus
     * @param pageSize
     * @param pageNum
     * @return
     */
    List<PmsBrand> list(String keyWord, Integer showStatus, Integer pageSize, Integer pageNum);

    /**
     * 查找全部的品牌信息
     *
     * @return
     */
    List<PmsBrand> listAll();

    /**
     * 添加新的品牌
     *
     * @param brandParam
     */
    void create(PmsBrandParam brandParam);

    /**
     * 更新品牌
     *
     * @param id
     * @param brandParam
     */
    @Transactional
    void update(Long id, PmsBrandParam brandParam);

    /**
     * 删除品牌
     *
     * @param id
     */
    @Transactional
    void delete(Long id);

    /**
     * 批量删除
     *
     * @param ids
     */
    @Transactional
    void deleteBatch(List<Long> ids);

    /**
     * 批量更新显示状态
     *
     * @param ids
     * @param showStatus
     */
    void updateShowStatus(List<Long> ids, Integer showStatus);

    /**
     * 批量更新厂家制造商状态
     *
     * @param ids
     * @param factoryStatus
     */
    void updateFactoryStatus(List<Long> ids, Integer factoryStatus);

    /**
     * 根据ID获取品牌信息
     *
     * @param id
     * @return
     */
    PmsBrand getItem(Long id);
}
